layui.use(['table', 'jquery','element','layer','form','layedit','upload'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var element = layui.element;
    var layer = layui.layer;
    var form = layui.form;
    var layedit = layui.layedit;
    var upload = layui.upload;
    //第一个实例
    table.render({
        elem: '#table',
        height: 600,
        toolbar :'#toolbar',
        defaultToolbar : []
        , url: ctx + '/eng/good/list' //数据接口
        , page: true
        , cols: [[
            , {field: 'name', title: '商品名称', align: 'center',width:'15%'}
            , {field: 'keyword', title: '关键词', align: 'center',width:'15%'}
            , {field: 'typeName', title: '类型名称', align: 'center',width:'15%'}
            , {field: 'branch', title: '品牌', align: 'center',width:'10%'}
            , {field: 'createTime', title: '创建时间', align: 'center',width:'19%'}
            , {field: 'createName', title: '创建人', align: 'center',width:'10%'}
            , {field: 'status', title: '商品状态', align: 'center',width:'10%',templet : function(d){
                    if(d.status == 1){
                        return "上架";
                    }
                    return "下架";
                }}
            , {field: 'ops', title: '操作', width: '40%', align: 'center',toolbar: '#tool'}
        ]]
    });


    // tool
    table.on('tool(table)', function(obj){
        var data = obj.data;
        var layEvent = obj.event;

        if(layEvent === 'down'){
            changeStatus(data);
        }else if(layEvent === 'up'){
            changeStatus(data);
        }else if(layEvent === 'update'){
            update(data);
        }else if(layEvent === 'updateIntroduce'){
            updateIntroduce(data);
        }else if(layEvent === 'updatePic'){
            updatePic(data);
        }else if(layEvent ==='updateParam'){
            updateParam(data);
        }
    });

    var paramData= null;
    // 修改参数信息
    function updateParam(data){
        paramData = data;
        // 首先渲染列表内容
        table.render({
            elem: '#updateParamTable',
            height: 400,
           toolbar :'#paramToolbar',
            defaultToolbar : []
            , url: ctx + '/eng/good/goodParamList?goodId'+paramData.id //数据接口
            , page: true
            , cols: [[
                , {field: 'param', title: '商品规格参数', align: 'center',width:'15%'}
                , {field: 'minRate', title: '积分最小占比', align: 'center',width:'15%'}
                , {field: 'maxRate', title: '积分最大占比', align: 'center',width:'15%'}
                , {field: 'price', title: '价钱', align: 'center',width:'19%'}
                , {field: 'status', title: '商品状态', align: 'center',width:'10%',templet : function(d){
                        if(d.status == 1){
                            return "上架";
                        }
                        return "下架";
                    }}
                , {field: 'ops', title: '操作', width: '40%', align: 'center',toolbar: '#paramTool'}
            ]]
        });

        table.on('tool(updateParamTable)', function(obj){
            var data = obj.data;
            var layEvent = obj.event;

            if(layEvent === 'down'){
                paramChangeStatus(data);
            }else if(layEvent === 'up'){
                paramChangeStatus(data);
            }else if(layEvent ==='add'){
                addParamItem(data);
            }else if(layEvent ==='update'){
                updateParamItem(data);
            }
        });


        layer.open({
            title : '商品规格修改',
            type : 1,
            content : $('#updateParamLayer'),
            area :['800px','500px']
        })

    }

    // 更新子项内容
    function updateParamItem(data){
        layer.alert('先下架再新增一个规格来实现更新操作', {icon: 1});
    }

    // 商品子项修改
    var paramData = null;

    // 添加商品子项
    function addParamItem(data){
        paramData = data;
        // 回填数据
        $('#addParamItemlayerId').val(paramData.id)
        $('#addParamItemlayerGoodId').val(paramData.goodId)
        // 弹出内容
        layer.open({
            title : '新增规格',
            type : 1,
            content : $('#addParamItemlayer'),
            area : ['500px','350px'],
            btn : ['确定'],
            yes : function(index){
                $.ajax({
                    url : ctx+"/eng/good/addGoodParamItem",
                    data : $('#addParamItemlayerForm').serialize(),
                    type : 'post',
                    async : false,
                    success : function(res){
                        if(res.success){
                            layer.close(index);
                            layer.msg(res.msg,{icon:1});
                            $('#addParamItemlayerReset').click();
                            table.reload('updateParamTable');
                        }else{
                            layer.msg(res.msg,{icon:2})
                        }
                    }
                })
            }
        })

    }

    // 商品规格上下架
    function paramChangeStatus(data){
        paramData = data;
        $.ajax({
            url : ctx+"/eng/good/changeParamItem",
            data :{
                id : data.id
            },
            async : false,
            success : function(res){
                if(res.success){
                    layer.msg(res.msg,{icon:1});
                    table.reload('updateParamTable');
                }else{
                    layer.msg(res.msg,{icon:2});
                }
            }
        });
    }

    var picData = null;

    // 绑定图片删除操作
    $('#updateGoodPic').on('click','img',function(e){
        layer.confirm('确定要删除吗?', {icon: 3, title:'提示'}, function(index){
            $(e.target).remove();
            $.ajax({
                url : ctx+"/eng/good/delGoodPic",
                data :{
                    id : $(e.target).attr('info')
                },
                async : false,
                success : function(){
                }
            });
            layer.close(index);
        });

    })
    // 修改图片信息
    function updatePic(data){
        picData = data;
        $('#demo2').html('');
        // 加载图片信息
        $.ajax({
            url : ctx+"/eng/good/getGoodPic",
            data : {
                goodId : picData.id
            },
            type : 'post',
            async : false,
            success : function(res){
                $.each(res.data,function(index,value){
                    $('#demo2').append('<img width="150px" height="150px" info="'+value.id+'" src="'+ ctx+"/images"+value.picUrl +'" alt="'+ value.picUrl +'" class="layui-upload-img">')
                })
            }
        });
        // 初始化控件
        upload.render({
            elem: '#test2'
            ,url: '/eng/good/uploadGoodPic?GoodId='+picData.id
            ,multiple: true
            ,before: function(obj){
                //预读本地文件示例，不支持ie8
                obj.preview(function(index, file, result){
                    $('#demo2').append('<img width="150px" height="150px" src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img">')
                });
            }
            ,done: function(res){
                var data = $('#demo2').find('img');
                $(data[data.length-1]).attr('info',res.data.id);
            }
        });
        // 弹出ceng
        layer.open({
            type :1,
            content:$('#updateGoodPic'),
            title : '修改商品图片',
            area : ['700px','300px']
        })
    }
    var introduceData = null;
    var  editIndex = null;
    // 修改商品描述信息
    function updateIntroduce(data){
        introduceData = data;
        // 弹出层
        layer.open({
            type : 1,
            content : $('#updateIntroduce'),
            title : '修改商品描述信息',
            area : ['800px','600px'],
            btn : ['确认'],
            yes : function(index){

                // 发送数据
                layedit.sync(editIndex);
                $.ajax({
                    url : ctx + '/eng/good/updateIntroduce',
                    data : {
                        goodId : introduceData.id,
                        introduceStr : layedit.getContent(editIndex)
                    },
                    type : 'post',
                    async : false,
                    success : function(res){
                        if(res.success){
                            layer.closeAll();
                            layer.msg(res.msg,{icon:1});
                        }else{
                            layer.msg(res.msg,{icon:2})
                        }
                    }
                });
            }
        });
        // 初始化数据
        $.ajax({
            url : ctx+"/eng/good/getIntroduce",
            data :{
                id : data.id
            },
            async : false,
            success : function(res){
                // 初始化
                layedit.set({
                    uploadImage: {
                        url: ctx+'/eng/good/uploadIntroducePic' //接口url
                        ,type: 'post' //默认post
                    }
                });
                $('#introduceTextArea').html(res.data);
                //放入值
                editIndex = layedit.build('introduceTextArea',{
                    height: 400 //设置编辑器高度
                });
            }
        })

    }
    // 修改商品主体信息
    function update(data){
        // 刷新下拉框内容
        dict.initDict($("#updateLayer select[name='typeId']"),'good_type');
        // 回填数据
        form.val('updateForm',{
            id : data.id,
            name : data.name,
            keyword : data.keyword,
            typeId : data.typeId,
            branch : data.branch,
            price : data.price
        });

        // 弹出ceng
        layer.open({
            type : 1,
            content :$('#updateLayer'),
            title : '商品信息修改'
        });
    }

    // 商品修改提交
    form.on('submit(update)',function(data){
        $.ajax({
            url : ctx+"/eng/good/update",
            type : 'post',
            data : data.field,
            async : false,
            success : function(res){
                if(res.success){
                    layer.closeAll();
                    layer.msg(res.msg,{icon:1})
                    table.reload('table');
                }else{
                    layer.msg(res.msg,{icon:2})
                }
            }
        });
    })

    // 商品上下架
    function  changeStatus(data){
        $.ajax({
            url : ctx+"/eng/good/goodChangeStatus",
            data :{
                id : data.id
            },
            async : false,
            success : function(res){
                if(res.success){
                    layer.msg(res.msg,{icon:1});
                    table.reload('table');
                }else{
                    layer.msg(res.msg,{icon:2});
                }
            }
        });
    }

    //toolbar
    table.on('toolbar(table)', function(obj){
        var event = obj.event;
        if(event == 'addGood'){
           // 进入新增页面之中
            window.open(ctx+"/eng/good/addPage");
        }
    });

    // 新增提交
    form.on('submit(submit)',function(data){
        // data.field
        $.ajax({
            url : ctx+"/eng/good/add",
            data : data.field,
            type:'post',
            success : function(res){
                if(res.usccess){
                    layer.msg(res.msg,{icon:1});
                    layer.closeAll();
                    layer.closeAll();
                    table.reload('table');
                }else{
                    layer.msg(res.msg,{icon:2});
                }
            }
        });
        return false;
    });

});